| Спецкурс | Пара Python'а | ||
| Основная информация | |||
| № | Пункт | Содержание | |
| 1 | Направление | Третий Путь | |
| 2 | Класс | 8-11 | |
| 3 | Тип курса | зачётный для всех классов | |
| 4 | Преподаватели | Савельев Александр Нюренберг Кирилл | |
| 5 | Стажёры | - | |
| 6 | Время проведения | Четверг 18:55 - 20:15 | |
| 7 | Цель курса | Обучить основам программирования на примере языка программирования Python | |
| 8 | Задачи курса | Изучить базовые типы данных. Изучить базовые структуры данных. Научиться работать с циклами и условными операторами. Научиться работать с функциями. Развить навык решения типовых и трудоемких задач. Изучить базовые алгоритмы сортировки, поиска. Научиться взаимодействовать с данными в текстовых файлах, электронных таблицах. Изучить основные понятия ООП. Изучить основы многопоточного программирования. | |
| 9 | Особенности курса | Курс нацелен на формирование фундаментальной базы программирования без жесткой привязки к языку программирования Python. Акцент сделан на устной защите домашних работ, включающей разбор стиля написания кода, на практической отработке полученной теории. | |
| 10 | Формат проведения занятия (включая использование classroom) | Занятие начинается с лекции, в рамках которой разбирается новая теория и её применение для решения типовых задач. После лекции проводится практическая часть. Во время неё можно сдать домашнее задание или задать интересующие вопросы в индивидуальном порядке. | |
| 11 | Целевая аудитория | Для учеников без опыта программирования. | |
| 12 | Краткое описание курса | Курс об основах программирования на базе языка Python. | |
| 13 | Количество слушателей | от 10 до 20 человек | |
| 14 | Отбор | Отбор по входной работе. | |
| 15 | Формы контроля и система отчётности | Домашние задания - 40% Каждое ДЗ будет состоять из 6 задач. 2 легкие, 2 средние, 2 сложные. Дедлайн на сдачу задачи из ДЗ - 2 недели с момента выдачи. Через две недели задачу можно будет сдать, но без возможности получения баллов. Экзамены - 40% Каждый экзамен будет разделен на две части. Теоретическую и практическую. В теоретической части нужно будет проанализировать уже написанный код, решить задачи, написав код на бумаге. Практическая часть будет проходить на компьютерах. Проверочные - 20% Минимальный критерий для получения зачета: ДЗ - 25% (всего 12 задач) Экзамены - 25% (суммарно по результатам обоих экзаменов) Проверочные - 10% (суммарно по результатам всех проверочных) | |
| 16 | Формат курса: онлайн/оффлайн/гибрид. В случае онлайн, какие платформы используются? | Офлайн. В случае ЧП курс будет проводится на платформе Яндекс Телемост. | |
| 17 | Дополнительная информация о курсе | - | |
| Позанятийный план | |||
| № занятия | Дата (Четверг) | Тематический блок | План занятия |
| 1 | 08.10.2026 | Вводное занятие | 1) Отборочная работа на 30 минут. 2) Знакомство с учениками. Введение в организацию курса. 3) Введение в программирование. Что такое программа и алгоритм. Языки программирования. Разница между компилируемыми и интерпретируемыми языками программирования. 4) Установка среды программирования IDLE. 5) Первая программа. Функция print. Переменные. Типы данных: int, float, str, bool. Функция input. |
| 2 | 15.10.2026 | Операторы | 1) Арифметические операторы. Сложение, вычитание, умножение, деление с остатком, возведение в степень, целочисленное деление. 2) Операторы присваивания. Равно, присваивание с применением арифметических операций. 3) Операторы сравнения. Эквивалентность, отрицание эквивалентности, больше, меньше, больше или равно, меньше или равно. 4) Логические операторы. and, or, not. 5) Порядок выполнения операций. 6) Решение задач |
| 3 | 22.10.2026 | Операторы | 1) Условные операторы if-elif-else. Вложенные условия. Тернарный условный оператор. Оператор сравнения match-case. 2) Операторы цикла for, while. Операторы управления циклом break, continue. Вложенные циклы. 3) Решение задач. |
| 4 | 29.10.2026 | Структуры данных | 1) Структура данных list. Индексация, срезы, изменяемость. Методы append, extend, insert, remove, pop, sort, reverse, clear. 2) Структура данных tuple. Индексация, срезы, неизменяемость. 3) Структура данных set. Изменяемость. Методы add, remove, pop, clear. Операции над множествами: объединение (|), пересечение (&), разность (-), симметричная разность (^). 4) Структура данных dict. Доступ по ключу, изменяемость. Методы get, keys, values, items, update, pop. 5) Тип данных str. Индексация, срезы, неизменяемость. Методы upper, lower, strip, split, join, replace, find. Операции над строками: конкатенация (+), повторение (*). f-строки. 6) Решение задач. |
| 5 | 05.11.2026 | Проверочная | Проверочная работа по пройденным темам. |
| 6 | 12.11.2026 | Функции | 1) Функции. Синтаксис функций. Ключевое слово def и оператор return. Аргументы функции. Область видимости переменных. Значения аргументов по умолчанию. *args и **kwargs 2) Обработка ошибок с помощью try-except. Оператор finally. 3) lambda-Функции. Синтаксис lambda-функций. Отличия lambda-функций от обычных. 4) Решение задач. |
| 7 | 19.11.2026 | Функции | 1) Рекурсия. Концепция рекурсии. Классические примеры задач на рекурсию (сумма чисел от 1 до n, факториал n, числа Фибоначчи). Причины RecursionError. Сравнение рекурсии и итерации. 2) Масштабное решение задач на рекурсивные функции. |
| 8 | 26.11.2026 | Работа с файлами | 1) Работа с библиотеками. Импортирование библиотек. 2) Открытие, чтение, запись, закрытие текстовых файлов. 3) Чтение таблиц csv. Создание функций для работы с файлами. 4) Решение задач. |
| 9 | 03.12.2026 | Консультация | Консультация перед экзаменом. Сдача ДЗ. |
| 10 | 10.12.2026 | Экзамен | Экзамен |
| 11 | 17.12.2026 | Чаепитие | Пересдача экзамена. Чаепитие. |
| 12 | 24.12.2026 | Резерв | Резерв |
| 31.12.2026 | |||
| 07.01.2027 | |||
| 14.01.2027 | |||
| 21.01.2027 | |||
| 13 | 28.01.2027 | Повторение | 1) Повторение пройденного за первое полугодие. 2) Дебаг. Работа со встроенным отладчиком на примере реальной программы. |
| 14 | 04.02.2027 | ООП | 1) Введение в объектно-ориентированное программирование(ООП). Ответ на вопрос зачем нужно создавать объекты. Принципы ООП (инкапсуляция, наследование, полиморфизм). 2) Классы. Ключевое слово class. Конструктор объекта __init__. Ключевое слово self. Методы класса. Атрибуты класса и экземпляров. 3) Написание собственного класса (Практическая часть). |
| 15 | 11.02.2027 | ООП | 1) Повторение предыдущей лекции. 2) Наследование. Создание дочернего класса. Многоуровневое наследование. Композиция против наследования. 3) Полиморфизм. Переопределение методов родительского класса, создание новых. Функция super. 4) Инкапсуляция. Отличия protected(_) и private(__) методов и атрибутов класса 5) Магические методы. Обзор методов сложения, строкового представления, сравнения классов. 6) Решение задач. |
| 16 | 18.02.2027 | Проверочная | Проверочная работа по ООП. |
| 17 | 25.02.2027 | Структуры данных | 1) Абстрактные типы данных. Популярные АТД: стек, очередь, список, множество, ассоциативный массив, очередь с приоритетом, графы, деревья. 2) Стек. Логика работы. Обзор возможной реализации. 3) Список. Логика работы односвязного и двусвязного списка. Обзор возможной реализации. 4) Очередь. Логика работы простой, двусторонней, кольцевой очереди. Обзор возможной реализации. 5) Множество. Логика работы. Обзор возможной реализации. |
| 18 | 04.03.2027 | Алгоритмы | 1) Введение. Оценка сложности алгоритма. Оценка сложности на примере уже пройденных структур данных. 2) Сортировки. Какие существуют алгоритмы (пузырьком, вставками, выбором, быстрая, слиянием, пирамидальная, Timsort) и их сложность. 3) Сортировка пузырьком. Логика работы. Реализация. Оценка сложности. 4) Сортировка вставками. Логика работы. Реализация. Оценка сложности. 5) Сортировка выбором. Логика работы. Реализация. Оценка сложности. 6) Решение задач. |
| 19 | 11.03.2027 | Алгоритмы | 1) Алгоритмы поиска. Какие существуют алгоритмы поиска (линейный, бинарный, поиск в ширину, поиск в глубину, алгоритм Дейкстры, A-star) и их сложность. Алгоритмические методы (два указателя, жадные алгоритмы, разделяй и властвуй, динамическое программирование, поиск с возвратом). 2) Бинарный поиск. Как и в каких задачах работает. Реализация. Оценка сложности. 3) Метод двух указателей. Как и в каких задачах работает. Обзор возможной реализации. Оценка сложности. 4) Метод скользящего окна. Дополнения метода двух указателей. 5) Решение задач. |
| 20 | 18.03.2027 | Многопоточное программирование | 1) Введение в многопоточное программирование. Концепт многопоточного программирования. Разница между конкурентностью и параллелизмом. 2) Класс Thread. I/O-bound задачи. Первый поток и deadlock. 3) Состояние гонки и как с ним бороться. GIL. 4) Классы Process и Queue. CPU-bound задачи. 5) Решение задач. |
| 21 | 25.03.2027 | Многопоточное программирование | 1) Асинхронность. Связь с многопоточностью. Область применения. 2) Ключевые слова async, await. Функции gather, run. Блокирующие вызовы. 3) Комбинация асинхронности и многопоточности. 4) Масштабное решение задач на многопоточность и асинхронность. |
| 22 | 01.04.2027 | Консультация | Консультация перед экзаменом. Сдача ДЗ. |
| 23 | 08.04.2027 | Экзамен | Экзамен |
| 24 | 15.04.2027 | Чаепитие | Пересдача экзамена. Чаепитие. |
| 22.04.2027 | |||
| 29.04.2027 | |||
| 06.05.2027 | |||
| 13.05.2027 | |||
| 20.05.2027 | |||
| 27.05.2027 | |||
| 03.06.2027 | |||
| 10.06.2027 | |||
| 17.06.2027 | |||
| 24.06.2027 | |||
| 01.07.2027 | |||
| Список используемой и рекомендованной литературы | |||
| 1 | Бхаргава, А. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих / А. Бхаргава. — Санкт-Петербург : Питер, 2017. — 288 с. | ||
| 2 | Игошин, В. И. Математическая логика и теория алгоритмов : учебное пособие / В. И. Игошин. — Москва : Академия, 2008. — 448 с. | ||
| 3 | Документация Python : официальный сайт. — URL: https://docs.python.org/ | ||
| 4 | Источник задач : сайт. — URL: https://informatics.msk.ru/ | ||
| 5 | Теоретический материал : сайт. — URL: https://docs-python.ru/ | ||
| 6 | |||
| 7 | |||
| 8 | |||
| 9 | |||